

using GameFrameWork;

namespace FrameWork
{
    public class ModuleGetter
    {
        private static AudioModule _audioModule;

        public static AudioModule AudioModule
        {
            get
            {
                if (_audioModule == null)
                    _audioModule = GameApp.Instance.GetModule<AudioModule>();

                return _audioModule;
            }
        }

        private static EventModule _eventModule;
        public static EventModule EventModule
        {
            get
            {
                if (_eventModule == null)
                    _eventModule = GameApp.Instance.GetModule<EventModule>();

                return _eventModule;
            }
        }

        private static UIModule _uiModule;

        public static UIModule UIModule
        {
            get
            {
                if (_uiModule == null)
                    _uiModule = GameApp.Instance.GetModule<UIModule>();
                return _uiModule;
            }
        }

        private static ObjectPoolModule _poolModule;
        public static ObjectPoolModule PoolModule
        {
            get
            {
                if (_poolModule == null)
                    _poolModule = GameApp.Instance.GetModule<ObjectPoolModule>();
                return _poolModule;
            }
        }

        private static TimerModule _timerModule;
        public static TimerModule TimerModule
        {
            get
            {
                if (_timerModule == null)
                    _timerModule = GameApp.Instance.GetModule<TimerModule>();
                return _timerModule;
            }
        }

        private static ResourceModule _resourceModule;
        public static ResourceModule ResourceModule
        {
            get
            {
                if (_resourceModule == null)
                    _resourceModule = GameApp.Instance.GetModule<ResourceModule>();
                return _resourceModule;
            }
        }

        private static FileModule _fileModule;
        public static FileModule FileModule
        {
            get
            {
                if (_fileModule == null)
                    _fileModule = GameApp.Instance.GetModule<FileModule>();
                return _fileModule;
            }
        }

        public static GameModule _gameModule;
        public static GameModule GameModule
        {
            get
            {
                if(_gameModule == null)
                    _gameModule = GameApp.Instance.GetModule<GameModule>();

                return _gameModule;
            }
        }

        public static StorageModule _storageModule;
        public static StorageModule StorageModule
        {
            get
            {
                if (_storageModule == null)
                    _storageModule = GameModule.GetModule<StorageModule>();

                return _storageModule;
            }
        }
    }
}

